package com.beyond.service;

import com.beyond.vo.BaseRespVO;
import com.beyond.vo.PaginaionVO;
import com.beyond.vo.safe.FireVO;
import com.beyond.vo.safe.SafeCapCountVO;
import com.beyond.vo.safe.SafecapVO;
import com.beyond.vo.user.*;

public interface UserService {
	
	/**
	 * 
	* @Title: insertUser 
	* @Description: 新建用户
	* @param reqVO
	* @return
	 */
	BaseRespVO insertUser(UserAddReqVO reqVO) throws Exception;
	
	/**
	 * 
	* @Title: updateUserLabel 
	* @Description: 修改用户
	* @param reqVO
	* @return BaseRespVO
	* @throws Exception
	 */
	BaseRespVO updateUser(UserAddReqVO reqVO) throws Exception;

    /**
     *
     * @Title: deleteUser
     * @Description: 删除用户
     * @param reqVO
     * @return BaseRespVO
     * @throws Exception
     */
    BaseRespVO deleteUser(UserAddReqVO reqVO) throws Exception;

	/**
	 *
	 * @Title: selectUserList
	 * @Description: 查询所有用户
	 * @param req
	 * @return PaginaionVO<UserAddReqVO>
	 * @throws Exception
	 */
	PaginaionVO<UserAddReqVO> selectUserList(UserAddReqVO req, int page, int pageSize) throws Exception;
	
	/**
	 * 
	* @Title: selectPersonList
	* @Description: 查询所有人员
	* @param reqVO
	* @return PaginaionVO<UserLabelVO>
	* @throws Exception
	 */
	PaginaionVO<PersonVO> selectPersonList(PersonVO reqVO, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectPersonAgeCount
	 * @Description: 查询所有人员年龄分布
	 * @param req
	 * @return PaginaionVO<PersonAgeCountVO>
	 * @throws Exception
	 */
	PaginaionVO<PersonAgeCountVO> selectPersonAgeCount(PersonAgeCountVO req) throws Exception;

	/**
	 *
	 * @Title: selectPersonSourceCount
	 * @Description: 查询所有人员来源分布
	 * @param req
	 * @return PaginaionVO<PersonSourceCountVO>
	 * @throws Exception
	 */
	PaginaionVO<PersonSourceCountVO> selectPersonSourceCount(PersonSourceCountVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectRecordList
	 * @Description: 查询所有记录
	 * @param req
	 * @return PaginaionVO<UserLabelVO>
	 * @throws Exception
	 */
	PaginaionVO<RecordVO> selectRecordList(RecordVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectRecordCount
	 * @Description: 查询所有记录统计【人员情况汇总】
	 * @param req
	 * @return PaginaionVO<RecordCountVO>
	 * @throws Exception
	 */
	PaginaionVO<RecordCountVO> selectRecordCount(RecordCountVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectWorkingTimeList
	 * @Description: 查询工作时长列表
	 * @param req
	 * @return PaginaionVO<WorkingTimeVO>
	 * @throws Exception
	 */
	PaginaionVO<WorkingTimeVO> selectWorkingTimeList(WorkingTimeVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectSafeCapList
	 * @Description: 查询安全帽佩戴检测列表
	 * @param req
	 * @return PaginaionVO<SafecapVO>
	 * @throws Exception
	 */
	PaginaionVO<SafecapVO> selectSafeCapList(SafecapVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectFireList
	 * @Description: 查询火灾预警列表
	 * @param req
	 * @return PaginaionVO<FireVO>
	 * @throws Exception
	 */
	PaginaionVO<FireVO> selectFireList(FireVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectHistoryAlarmList
	 * @Description: 查询历史报警查询列表
	 * @param req
	 * @return PaginaionVO<FireVO>
	 * @throws Exception
	 */
	PaginaionVO<FireVO> selectHistoryAlarmList(FireVO req, int page, int pageSize) throws Exception;

	/**
	 *
	 * @Title: selectSafeCatCount
	 * @Description: 查询所有安全帽佩戴检测数量
	 * @param req
	 * @return PaginaionVO<SafeCapCountVO>
	 * @throws Exception
	 */
	PaginaionVO<SafeCapCountVO> selectSafeCatCount(SafeCapCountVO req) throws Exception;

    /**
     *
     * @Title: selectFireAlarmCount
     * @Description: 查询所有火灾预警次数
     * @param req
     * @return PaginaionVO<SafeCapCountVO>
     * @throws Exception
     */
    PaginaionVO<SafeCapCountVO> selectFireAlarmCount(SafeCapCountVO req) throws Exception;

}
